package negocio;

import java.util.Date;
import java.util.Random;
import java.util.Vector;

import persistencia.FacturaDao;
import persistencia.ItemFacturaDao;

public class Factura {
	private int identificador;
	private Date fecha;
	private int id_usuario;
	private float Total;
	private Vector<ItemFactura> itemsFactura;
	
	
	
	public Factura() {
		fecha=new Date();
		identificador=(int)Math.random()+1;
	}
	


	public Factura(int identificador, Date fecha, int id_usuario, float total,
			Vector<ItemFactura> itemsFactura) {
		super();
		this.identificador = identificador;
		this.fecha = fecha;
		this.id_usuario = id_usuario;
		Total = total;
		this.itemsFactura = itemsFactura;
	}



	public Date getFecha() {
		return fecha;
	}



	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}



	public int getId_usuario() {
		return id_usuario;
	}



	public void setId_usuario(int id_usuario) {
		this.id_usuario = id_usuario;
	}



	public int getIdentificador() {
		return identificador;
	}
	public void setIdentificador(int identificador) {
		this.identificador = identificador;
	}

	public float getTotal() {
		return Total;
	}
	public void setTotal(float total) {
		Total = total;
	}
	public Vector<ItemFactura> getItemsFactura() {
		return itemsFactura;
	}
	public void setItemsFactura(Vector<ItemFactura> itemsFactura) {
		this.itemsFactura = itemsFactura;
	}
	
	public void agregarItem(ItemFactura item){
		this.itemsFactura.add(item);
		ItemFacturaDao.getInstancia().guardarItem(identificador, item);
	}
	
	public float calcularTotal(){
		float total=0;
		for(int i=0;i<itemsFactura.size();i++){
			total=total+itemsFactura.elementAt(i).getMonto();
		}
		return total;
	}

	public void guardarFactura(){
		FacturaDao.getInstancia().guardarFactura(this);
	}


	@Override
	public String toString() {
		return "Factura [identificador=" + identificador + ", fecha=" + fecha
				+ ", id_usuario=" + id_usuario + ", Total=" + Total
				+ ", itemsFactura=" + "]";
	}

	
	
	
	
}
